package com.yowasa.xiuxian.engine.travel;

import com.google.common.collect.Sets;
import com.yowasa.xiuxian.entity.bo.user.UserBO;
import com.yowasa.xiuxian.entity.enums.MapEnum;

import java.util.Set;

/**
 * 奇遇接口
 */
public interface AdventureInterface {

    /**
     * 额外限制
     *
     * @param user
     * @return
     */
    default boolean limitCheck(UserBO user) {
        return true;
    }

    /**
     * 地图限制
     *
     * @return
     */
    default Set<MapEnum> limitMaps() {
        return Sets.newHashSet(MapEnum.values());
    }

    /**
     * 是否与正常游历冲突
     *
     * @return
     */
    default boolean isConflict() {
        return false;
    }

    /**
     * 奇遇内容
     *
     * @param user
     */
    String exec(UserBO user);

    default int weight() {
        return 5;
    }

}
